package com.ym.shardingsphere.service;

import com.github.pagehelper.PageInfo;
import com.ym.shardingsphere.entity.TxOrder;
import com.ym.utils.exception.*;
import com.ym.shardingsphere.vo.TxOrderVO;

import java.util.List;

/**
 * @version v1.0
 * @ProjectName: SpringCloud-Alibaba-YM
 * @ClassName: 订单分库分表演示
 * @Description: TODO(订单分库分表演示 服务类)
 * @Author: 晨曦
 * @Date: 2020-12-21 9:48:12
 */
public interface ITxOrderService {
    /**
     * 订单分库分表演示添加
     *
     * @param param 添加入参
     * @return TxOrderVO
     * @throws CustomException
     */
    TxOrderVO addTxOrder(TxOrderVO param) throws CustomException;

    /**
     * 订单分库分表演示删除
     *
     * @param id 入参
     * @return void
     * @throws CustomException
     */
    void deleteTxOrderById(String id) throws CustomException;

    /**
     * 订单分库分表演示批量删除
     *
     * @param idList 入参
     * @return void
     * @throws CustomException
     */
    void deleteTxOrderByIds(List<String> idList) throws CustomException;

    /**
     * 订单分库分表演示修改
     *
     * @param param 添加入参
     * @return TxOrderVO
     * @throws CustomException
     */
    TxOrderVO updateTxOrder(TxOrderVO param) throws CustomException;

    /**
     * 订单分库分表演示查询
     *
     * @param id 查询入参
     * @return TxOrder
     * @throws CustomException
     */
    TxOrder getTxOrderInforById(String id) throws CustomException;


    /**
     * 订单分库分表演示分页查询
     *
     * @param parmVO   查询入参
     * @param pageNum  当前页数
     * @param pageSize 分页条数
     * @return PageInfo
     * @throws CustomException
     */
    PageInfo getTxOrderListByPage(TxOrderVO parmVO, Integer pageNum, Integer pageSize) throws CustomException;

    /**
     * 订单分库分表演示条件检索信息
     *
     * @param parmVO 查询入参
     * @return PageInfo
     * @throws CustomException
     */
    List<TxOrder> getTxOrderListByParm(TxOrderVO parmVO) throws CustomException;

}
